Collision monitoring using statistic models

ABSTRACT

Techniques and methods for performing collision monitoring using error models. For instance, a vehicle may generate sensor data using one or more sensors. The vehicle may then analyze the sensor data using systems in order to determine parameters associated with the vehicle and parameters associated with another object. Additionally, the vehicle may process the parameters associated with the vehicle using error models associated with the systems in order to determine a distribution of estimated locations associated with the vehicle. The vehicle may also process the parameters associated with the object using the error models in order to determine a distribution of estimated locations associated with the object. Using the distributions of estimated locations, the vehicle may determine the probability of collision between the vehicle and the object.

BACKGROUND

An autonomous vehicle can use an autonomous vehicle controller to guidethe autonomous vehicle through an environment. For example, theautonomous vehicle controller can use planning methods, apparatuses, andsystems to determine a drive path and guide the autonomous vehiclethrough the environment that contains dynamic objects (e.g., vehicles,pedestrians, animals, and the like) and static objects (e.g., buildings,signage, stalled vehicles, and the like). The autonomous vehiclecontroller may take into account predicted behavior of the dynamicobjects as the vehicle navigates through the environment.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical components or features.

FIG. 1 is an illustration of an environment that includes a vehicleperforming collision monitoring using error models and/or system data,in accordance with embodiments of the disclosure.

FIG. 2 is an illustration of an example of a vehicle analyzing sensordata using error models in order to determine estimated locationsassociated with an object, in accordance with embodiments of thedisclosure.

FIG. 3 is an illustration of another example of a vehicle analyzingsensor data using error models in order to determine estimated locationsassociated with an object, in accordance with embodiments of thedisclosure.

FIG. 4 is an illustration of an example of a vehicle analyzing sensordata and system data in order to determine estimated locationsassociated with an object, in accordance with embodiments of thedisclosure.

FIG. 5 is an illustration of another example of a vehicle analyzingsensor data and system data in order to determine estimated locationsassociated with an object, in accordance with embodiments of thedisclosure.

FIG. 6 illustrates an example graph illustrating a vehicle determiningprobabilities of collision, in accordance with embodiments of thedisclosure.

FIG. 7 illustrates generating error model data based at least in part onvehicle data and ground truth data, in accordance with embodiments ofthe present disclosure.

FIG. 8 illustrates computing device(s) generating perception error modeldata based at least in part on log data generated by the vehicle(s) andground truth data, in accordance with embodiments of the presentdisclosure.

FIG. 9 illustrates generating uncertainty data based at least in part onvehicle data and ground truth data, in accordance with embodiments ofthe present disclosure.

FIG. 10 depicts a block diagram of an example system for implementingthe techniques described herein, in accordance with embodiments of thepresent disclosure.

FIG. 11 depicts an example process for performing collision monitoringusing error models, in accordance with embodiments of the disclosure.

FIG. 12 depicts an example process for using error models to determineestimated locations associated with an object, in accordance withembodiments of the disclosure.

FIGS. 13A-13B depict an example process for performing collisionmonitoring using uncertainties, in accordance with embodiments of thedisclosure.

FIG. 14 depicts an example process for using uncertainties to determineestimated locations associated with an object, in accordance withembodiments of the disclosure.

DETAILED DESCRIPTION

As discussed above, an autonomous vehicle can use a controller to guidethe autonomous vehicle through an environment. For example, thecontroller can use planning methods, apparatuses, and systems todetermine a drive path and guide the autonomous vehicle through theenvironment that contains dynamic objects (e.g., vehicles, pedestrians,animals, and the like) and/or static objects (e.g., buildings, signage,stalled vehicles, and the like). In order to ensure the safety of theoccupants and objects, the autonomous vehicle controller may employsafety factors when operating in the environment. In at least someexamples, however, such systems and controllers may comprise complexsystems which are incapable of being inspected. Despite the fact thatthere may not be methods for determining errors or uncertaintiesassociated with such systems and systems, such errors and uncertaintiesmay be necessary for informing such a vehicle of safe operation in anenvironment.

As such, this disclosure is directed to techniques for performingcollision monitoring using error models and/or system data bydetermining such error and/or uncertainty models for complex systems andsystems. For example, an autonomous vehicle may use error models and/orsystem uncertainties to determine, at a later time, estimated locationsof both the autonomous vehicle and one or more objects. In someinstances, the estimated locations may include distributions ofprobability locations associated with the autonomous vehicle and the oneor more objects. The autonomous vehicle may then determine a probabilityof collision between the autonomous vehicle and the one or more objectsusing the estimated locations. Based at least in part on the probabilityof collision, the autonomous vehicle may perform one or more actions. Inat least some examples, such probabilities may be determined based ondeterminations made according to any of the techniques described indetail herein.

For more details, the autonomous vehicle can traverse an environment andgenerate sensor data using one or more sensors. In some instances, thesensor data can include data captured by sensors such as time-of-flightsensors, location sensors (e.g., GPS, compass, etc.), inertial sensors(e.g., inertial measurement units (IMUs), accelerometers, magnetometers,gyroscopes, etc.), lidar sensors, radar sensors, sonar sensors, infraredsensors, cameras (e.g., RGB, IR, intensity, depth, etc.), microphonesensors, environmental sensors (e.g., temperature sensors, humiditysensors, light sensors, pressure sensors, etc.), ultrasonic transducers,wheel encoders, etc. The autonomous vehicle can then analyze the sensordata using one or more components (e.g., one or more systems) whennavigating through the environment.

For example, the one or more of the components of the autonomous vehiclecan use the sensor data to generate a trajectory for the autonomousvehicle. In some instances, the one or more components can also use thesensor data to determine pose data associated with a position of theautonomous vehicle. For example, the one or more components can use thesensor data to determine position data, coordinate data, and/ororientation data of the vehicle in the environment. In some instances,the pose data can include x-y-z coordinates and/or can include pitch,roll, and yaw data associated with the vehicle.

Additionally, the one or more component of the autonomous vehicle canuse the sensor data to perform operations such as detecting,identifying, segmenting, classifying, and/or tracking objects within theenvironment. For example, objects such as pedestrians,bicycles/bicyclists, motorcycles/motorcyclists, buses, streetcars,trucks, animals, and/or the like can be present in the environment. Theone or more components can use the sensor data to determine currentlocations of the objects as well as estimated locations for the objectsat future times (e.g., one second in the future, five seconds in thefuture, etc.).

The autonomous vehicle can then use the trajectory of the autonomousvehicle along with the estimated locations of the objects to determine aprobability of collision between the autonomous vehicle and the objects.For example, the autonomous vehicle may determine if an estimatedlocation of an object at a future time intersects with a location of theautonomous vehicle along the trajectory at the future time. To increasethe safety, the autonomous vehicle may use distance and/or time bufferswhen making the determination. For example, the autonomous vehicle maydetermine that there is a high probability of collision when thelocation of the object at the future time is within a threshold distance(e.g., a distance buffer) to the location of the autonomous vehicle.

Additionally, the autonomous vehicle may use error models associatedwith the components and/or uncertainties associated with the outputs ofthe components to determine the probability of collision. An error modelassociated with a component can represent error(s) and/or errorpercentages associated with the output of the component. For example, aperception error model can produce a perception error associated with aperception parameter (e.g., an output) of a perception component, aprediction error model can produce a prediction error associated with aprediction parameter (e.g., an output) from a prediction component,and/or the like. In some instances, the errors may be represented by,and without limitation, look-up tables determined based at least in parton statistical aggregation using ground-truth data, functions (e.g.,errors based on input parameters), or any other model or data structurewhich maps an output to a particular error. In at least some examples,such error models may map particular errors withprobabilities/frequencies of occurrence. As will be described, in someexamples, such error models may be determined for certain classes ofdata (e.g., differing error models for a perception system fordetections within a first range and for detections within a second rangeof distances, based on a velocity of the vehicle, of the object, etc.).

In some instances, the error models may include static error models. Inother instances, the error models may include dynamic error models whichare updated by the autonomous vehicle and/or one or more computingdevices. For instance, the computing device(s) may continue to receivevehicle data from autonomous vehicles. The computing device(s) may thenupdate the error models using the vehicle data as well as ground truthdata, which is described in more detail below. After updating the errormodels, the computing device(s) may send the updated error models to theautonomous vehicle.

A component may analyze sensor data and, based at least in part on theanalysis, produce an output, which may represent one or more parameters.An error model can then indicate that an output of the component of thevehicle, such as a speed associated with an object, is associated withan error percentage. For instance, the component may determine that thespeed of the object within the environment is 10 meters per second.Using the error model, the autonomous vehicle may determine that theerror percentage is X % (e.g., 20%) resulting in a range of speeds +/−X% (e.g., between 8 meters per second and 12 meters per second in thecase of a 20% error percentage). In some instances, the range of speedscan be associated with a probability distribution, such as a Gaussiandistribution, indicating that portions of the range have a higherprobability of occurring than other portions of the range. In someexamples, the probability distribution may be binned into multiplediscrete probabilities. For example, 8 meters per second and 12 metersper second may be associated with a 5% probability, 9 meters per secondand 11 meters per second may be associated with a 20% percentprobability, and 10 meters per second may be associated with a 45%probability.

To use the error models, the autonomous vehicle may determine estimatedlocations of an object at a future time based at least in part on theoutputs from the components and the error models associated with thecomponents. The estimated locations may correspond to a probabilitydistribution, such as a Gaussian distribution, of locations. In someinstances, the autonomous vehicle determines the estimated locations ofthe object by initially determining the respective probabilitydistributions associated with each of the components and/or theparameters. The autonomous vehicle may then determine the estimatedlocations using the probability distributions for all of the componentsand/or parameters. For example, the autonomous vehicle may aggregate orcombine the probability distributions for all of the components and/orparameters to determine the estimated locations. Aggregating and/orcombining the probability distributions may include multiplying theprobability distributions, summing up the probability distributions,and/or applying one or more other formulas to the probabilitydistributions.

Additionally, or alternatively, in some instances, the autonomousvehicle may first determine an initial estimated location associatedwith the object using the outputs from the components. The autonomousvehicle then uses the error models to determine total errors of each ofthe outputs. The autonomous vehicle may determine the total errors byaggregating and/or combining the errors from each of the error modelsfor the components. Next, the autonomous vehicle uses the total errorsand initial estimated location to determine the estimated locations. Insuch instances, the estimated locations may include a distribution ofprobable locations around the initial estimated location.

For a first example, the autonomous vehicle may use one or morecomponents to analyze the sensor data in order to determine parametersassociated with an object. The parameters may include, but are notlimited to, a type of object, a current location of the object, a speedof the object, a direction of travel of the object, and/or the like.Using the error models, the autonomous vehicle may then determine aprobability distribution associated with the type of object, aprobability distribution associated with the current location of theobject, a probability distribution associated with the speed of theobject, a probability distribution associated with the direction oftravel of the object, and/or the like. The autonomous vehicle may thendetermine the estimated locations of the object at the future time usingthe probability distributions for the parameters. In this first example,each (or any one or more) of the estimated locations may be representedas a probability distribution of locations.

For a second example, the autonomous vehicle may use the one or morecomponents to analyze the sensor data in order to once again determinethe parameters associated with the object. The autonomous vehicle maythen determine an initial estimated location of the object at the futuretime using the parameters. Additionally, in some examples, theautonomous vehicle may use the error models associated with theparameters to determine total errors and/or error percentages associatedwith determining the initial estimated location of the object. Theautonomous vehicle may then use the initial estimated location and thetotal errors and/or error percentages to determine the estimatedlocations for the object. Again, in this second example, each (or anyone or more) of the estimated locations may be represented as aprobability distribution of locations.

In either of the examples above, the autonomous vehicle may use similarprocesses to determine estimated locations of one or more other objectslocated within the environment. Additionally, the autonomous vehicle mayuse similar processes to determine estimated locations of the autonomousvehicle at the future time. For example, the autonomous vehicle may useone or more components to analyze the sensor data in order to determineparameters associated with the autonomous vehicle. The parameters mayinclude, but are not limited to, a location of the autonomous vehicle, aspeed of the autonomous vehicle, a direction of travel of the autonomousvehicle, and/or the like. The autonomous vehicle may then employ errormodels associated with the parameters to determine estimated locationsof the autonomous vehicle at the future time. In some examples, each (orany one or more) of the estimated locations may correspond to aprobability distribution of locations for the autonomous vehicle at thefuture time.

Additionally to, or alternatively from, using the error models todetermine the estimated locations of the autonomous vehicle and/orobjects, the autonomous vehicle may use system data, such as uncertaintymodels, associated with the components and/or the outputs to determinethe estimated locations. An uncertainty model associated with aparameter may correspond to a distribution of how much the output shouldbe trusted and/or a measure of how correct the system believes theoutput to be. For example, if a component analyzes sensor data multipletimes in order to determine a location of an object, the component willoutput a low uncertainty if the outputs include a small distribution ofvalues (e.g., within a first range) around the location indicated by theground truth data. Additionally, the component will output a largeuncertainty if the outputs include a large distribution of values aroundthe location indicated by the ground truth data (e.g., within a secondrange that is greater than the first range). The autonomous vehicle mayuse the uncertainty models to determine estimated locations of an objectat a future time.

For a first example, the autonomous vehicle may use one or morecomponents to analyze the sensor data in order to again determine theparameters associated with an object. The autonomous vehicle may thendetermine an uncertainty model associated with determining the type ofobject, an uncertainty model associated with determining the currentlocation of the object, an uncertainty model associated with determiningthe speed of the object, an uncertainty model associated withdetermining the direction of travel of the object, and/or the like. Theautonomous vehicle may then determine the estimated locations of theobject at a future time using the uncertainty models associated with theparameters. In this first example, the estimated locations maycorrespond to a probability distribution of locations.

For a second example, the autonomous vehicle may use the one or morecomponents to analyze the sensor data in order to once again determinethe parameters associated with the object. The autonomous vehicle maythen determine an initial estimated location of the object at the futuretime using the parameters. Additionally, the autonomous vehicle may usethe uncertainty models associated with the components determining theparameters and the estimated location to determine the estimatedlocations of the object at the future time. Again, in this secondexample, the estimated locations may correspond to a probabilitydistribution of locations.

In either of the examples above, the autonomous vehicle may use similarprocesses to determine estimated locations of one or more other objectslocated within the environment. Additionally, the autonomous vehicle mayuse similar processes to determine estimated locations of the autonomousvehicle at the future time. For example, the autonomous vehicle may useone or more components to analyze the sensor data in order to determineparameters associated with the autonomous vehicle. The parameters mayinclude, but are not limited to, a location of the autonomous vehicle, aspeed of the autonomous vehicle, a direction of travel of the autonomousvehicle, and/or the like (any and/or all of which may be derived from anoutput trajectory from a planner system, for example). The autonomousvehicle may then use uncertainty models associated with determining theparameters to determine estimated locations of the autonomous vehicle atthe future time. In some examples, the estimated locations maycorrespond to a probability distribution of locations for the autonomousvehicle at the future time.

In some instances, the autonomous vehicle may then determine aprobability of collision using the estimated locations of the autonomousvehicle and the estimated locations of the objects. For example, theprobability of collision between the autonomous vehicle and an objectmay be computed using an area of geometric overlap between the estimatedlocations (e.g., the probability distribution of locations) of the ofthe autonomous vehicle and the estimated locations (e.g., theprobability distribution of locations) of the object. In some instances,if there are multiple objects located within the environment, theautonomous vehicle may determine a total probability of collisionassociated with the autonomous vehicle using the determined probabilityof collisions for each of the objects. For example, the totalprobability of collision may include the sum of the probability ofcollisions for each of the objects.

The autonomous vehicle may then determine whether the probability ofcollision is equal to or greater than a threshold (e.g., 0.5%, 1%, 5%,and/or some other threshold percentage). In some instances, if theprobability of collision is less than the threshold, then the autonomousvehicle may continue to navigate along the current route of theautonomous vehicle. However, in some instances, if the autonomousvehicle determines that the probability of collision is equal to orgreater than the threshold, then the autonomous vehicle may take one ormore actions. For example, the autonomous vehicle may change a speed(e.g., slowdown) of the autonomous vehicle, change the route of theautonomous vehicle, park at a safe location, and/or the like.

Additionally, or alternatively, in some instances, the autonomousvehicle may determine a total uncertainty associated with navigating theautonomous vehicle based at least in part on the uncertainty models usedto determine the estimated locations of the autonomous vehicle and theuncertainty models used to determine the estimated locations of theobject(s). The autonomous vehicle may then generate different routes andperform similar processes for determining the total uncertaintiesassociated with the different routes. Additionally, the autonomousvehicle may select the route that includes the lowest uncertainty.

In some instances, the autonomous vehicle and/or one or more computingdevices use input data (e.g., log data and/or simulation data) togenerate the error models and/or the uncertainty models. For example,the autonomous vehicle and/or the one or more computing devices maycompare the input data to ground truth data. In some instances, theground truth data can be manually labeled and/or determined from other,validated, machine-learned components. For example, the input data caninclude the sensor data and/or the output data generated by a componentof the autonomous vehicle. The autonomous vehicle and/or the one or morecomputing devices can compare the input data with the ground truth datawhich can indicate the actual parameters of an object in theenvironment. By comparing the input data with the ground truth data, theautonomous vehicle and/or the one or more computing devices candetermine an error and/or uncertainty associated with a component and/orparameter and generate the corresponding error model using the errorand/or the corresponding uncertainty models using the uncertainty.

In some instances, the autonomous vehicle and/or the one or morecomputing devices can determine the uncertainties associated with thecomponents. For example, the autonomous vehicle and/or the one or morecomputing devices may input the input data into a component multipletimes in order to receive multiple outputs (e.g., parameters) from thecomponent. The autonomous vehicle and/or the one or more computingdevices may then analyze the outputs to determine a distributionassociated with the outputs. Using the distribution, the autonomousvehicle and/or the one or more computing devices may determine theuncertainty. For example, if there is a large distribution, then theautonomous vehicle and/or the one or more computing devices maydetermine there is a large uncertainty. However, if there is a smalldistribution, then the autonomous vehicle and/or the one or morecomputing devices may determine that there is a small uncertainty.

The techniques described herein may be implemented in a number of ways.Example implementations are provided below with reference to thefollowing figures. Although discussed in the context of an autonomousvehicle, the methods, apparatuses, and systems described herein may beapplied to a variety of systems (e.g., a sensor system or a roboticplatform), and are not limited to autonomous vehicles. In anotherexample, the techniques may be utilized in an aviation or nauticalcontext, or in any system using machine vision (e.g., in a system usingimage data). Additionally, the techniques described herein may be usedwith real data (e.g., captured using sensor(s)), simulated data (e.g.,generated by a simulator), or any combination of the two.

FIG. 1 is an illustration of an environment 100 that includes a vehicle102 performing collision monitoring using error models and/or systemdata, in accordance with embodiments of the disclosure. For example, thevehicle 102 may be navigating along a trajectory 104 within theenvironment 100. While navigating, the vehicle 102 may be generatingsensor data 106 using one or more sensors of the vehicle 102 andanalyzing the sensor data 106 using one or more components 108 (e.g.,one or more systems) of the vehicle 102. The component(s) 108 mayinclude, but are not limited to, a localization component, a perceptioncomponent, a prediction component, a planning component, and/or thelike. Based at least in part on the analysis, the vehicle 102 mayidentify at least a first object 110 and a second object 112 locatedwithin the environment 100.

Additionally, the vehicle 102 may analyze the sensor data 106 using thecomponent(s) 108 in order to determine estimated locations 114associated with the vehicle 102, estimated locations 116 associated withthe first object 110, and estimated locations 118 associated with thesecond object 112 at a future time. In some instances, the estimatedlocations 114 may include a probability distribution of locationsassociated with the vehicle 102, the estimated locations 116 may includea probability distribution of locations associated with the first object110, and/or the estimated locations 118 may include a probabilitydistribution of locations associated with the second object 112.

For example, the estimated locations 114 may include an estimatedlocation 120(1) associated with the vehicle 102, a first area ofestimated locations 120(2) (e.g., a first boundary) that are associatedwith a first probability, a second area of estimated locations 120(3)(e.g., a second boundary) that are associated with a second probability,and a third area of estimated locations 120(4) (e.g., a third boundary)that are associated with a third probability. In some instances, thefirst probability is greater than the second probability and the secondprobability is greater than the third probability. For example, thevehicle 102 may determine that there is a higher probability that thevehicle 102 will be located within the first area of estimated locations120(2) than within the second area of probably location 120(3).Additionally, the vehicle 102 may determine that there is a higherprobability that the vehicle 102 will be located within the second areaof estimated location 120(3) than within the third area of estimatedlocations 120(4).

It should be noted that, while the example of FIG. 1 only illustratesthree separate areas so estimated locations, in other examples, theremay be any number of areas of estimated locations. Additionally, theareas that are located further from the estimated location 120(1) mayinclude a lower probability than the areas that are located closer tothe estimated location 120(1). This may similarly be for each of theestimated locations of the object 110 and the object 112.

Additionally, the estimated locations 116 may include an estimatedlocation 122(1) associated with the first object 110, a first area(e.g., a first boundary) of estimated locations 122(2) that areassociated with a first probability, a second area of estimatedlocations 122(3) (e.g., a second boundary) that are associated with asecond probability, and a third area of estimated locations 122(4)(e.g., a third boundary) that are associated with a third probability.In some instances, the first probability is greater than the secondprobability and the second probability is greater than the thirdprobability. For example, the vehicle 102 may determine that there is ahigher probability that the first object 110 will be located within thefirst area of estimated locations 122(2) than within the second area ofprobably location 122(3). Additionally, the vehicle 102 may determinethat there is a higher probability that the first object 110 will belocated within the second area of estimated location 122(3) than withinthe third area of estimated locations 122(4).

Furthermore, the estimated locations 118 may include an estimatedlocation 124(1) associated with the second object 112, a first area ofestimated locations 124(2) (e.g., a first boundary) that are associatedwith a first probability, a second area of estimated locations 124(3)(e.g., a second boundary) that are associated with a second probability,and a third area of estimated locations 124(4) (e.g., a third boundary)that are associated with a third probability. In some instances, thefirst probability is greater than the second probability and the secondprobability is greater than the third probability. For example, thevehicle 102 may determine that there is a higher probability that thesecond object 112 will be located within the first area of estimatedlocations 124(2) than within the second area of probably location124(3). Additionally, the vehicle 102 may determine that there is ahigher probability that the second object 112 will be located within thesecond area of estimated location 124(3) than within the third area ofestimated locations 124(4).

In some instances, the vehicle 102 may determine the estimated locations114-118 using error model(s) 126 associated with the component(s) 108.For example, and for the first object 110, the vehicle 102 may analyzethe sensor data 106 using the component(s) 108 in order to determine oneor more parameters 128 associated with the first object 110. Theparameter(s) 128 may include, but are not limited to, a type of thefirst object 110, a current location of the first object 110 (and/ordistance to the first object 110), a speed of the first object 110,and/or the like. Using the error model(s) 126, the vehicle 102 may thendetermine the estimated locations 116 of the first object 110.

For a first example, the vehicle 102 may use a first error model 126 todetermine a probability distribution associated with the type of thefirst object 110, use a second error model 126 to determine aprobability distribution associated with the current location of thefirst object 110, use a third error model 126 to determine a probabilitydistribution associated with the speed of the first object 110, and/orthe like. For instance, and using the speed of the first object 110, thevehicle 102 may determine that the speed of the first object 110 is 1meter per second. The vehicle 102 may then use the third error model 126to determine that the error percentage can be X % (e.g., 20%) resultingin a range of speeds (e.g., speeds between 0.8 meters per second and 1.2meters per second at 20%). In some instances, the error model 126 mayfurther indicate that portions of the range have a higher probability ofoccurring than other portions of the range. For example, 0.8 meters persecond and 1.2 meters per second may be associated with a 5%probability, 0.9 meters per second and 1.1 meters per second may beassociated with a 20% percent probability, and 1 meter per second may beassociated with a 45% probability. The vehicle 102 may use similarprocesses for determining the probability distributions of the otherparameter(s) 128.

The vehicle 102 may then use the probability distributions of theparameters 128 to determine the estimated locations 116 of the firstobject 110. Additionally, the vehicle 102 may use similar processes todetermine parameters 128 for the vehicle 102, determine the probabilitydistributions associated with the parameters 128 for the vehicle 102,and determine the estimated locations 114 using the probabilitydistributions. Furthermore, the vehicle 102 may use similar processes todetermine parameters 128 for the second object 112, determine theprobability distributions associated with the parameters 128 for thesecond object 112, and determine the estimated locations 116 using theprobability distributions.

For a second example, the vehicle 102 may use the parameters 128 for thefirst object 110 in order to determine the estimated location 122(1) forthe first object 110. The vehicle 102 may then use the error models 126associated with the parameters 128 that were used to determine theestimated location 122(1) in order to determine total errors for theparameters 128. Using the total errors and the estimated location122(1), the vehicle 102 may determine the estimated locations 116 forthe first object 110. Additionally, the vehicle 102 may use similarprocesses to determine the estimated locations 114 for the vehicle 102and the estimated locations 118 for the second object 112.

Additionally to, or alternatively from, using the error model(s) 126 todetermine the estimated locations 114-118, in other examples, thevehicle 102 may use one or more uncertainty model(s) 130 associated withthe component(s) 108 and/or the parameter(s) 128. For instance, theoutputs from the component(s) 108 may include uncertainty model(s) 130associated with determining the parameters 128. For instance, thevehicle 102 may determine a first uncertainty model 130 associated withdetermining the type of the first object 110, a second uncertainty model130 associated with determining the current location of the first object110, a third uncertainty model 130 associated with determining the speedof the first object 110, and/or the like. The vehicle 102 may thendetermine the estimated locations 116 for the first object 110 using theparameters 128 and the uncertainty models 130.

For a first example, the vehicle 102 may use the first uncertainty model130 to determine a probability distribution associated with the type ofthe first object 110, use the second uncertainty model 130 to determinea probability distribution associated with the current location of thefirst object 110, use the third uncertainty model 130 to determine aprobability distribution associated with the speed of the first object110, and/or the like. For instance, and using the speed of the firstobject 110, the vehicle 102 may determine that the speed of the firstobject 110 is 1 meter per second. The vehicle 102 may then determinethat the uncertainty for the speed of the first object is 20% and assuch, the certainty is 80%. As such, the vehicle 102 may determine thatthe range for the speed is between 0.8 meters per second and 1.2 metersper second. In some instances, the vehicle 102 may further determinethat portions of the range have a higher probability of occurring thanother portions of the range. For example, 0.8 meters per second and 1.2meters per second may be associated with a 5% probability, 0.9 metersper second and 1.1 meters per second may be associated with a 20%percent probability, and 1 meter per second may be associated with a 45%probability. The vehicle 102 may use similar processes for determiningthe probability distributions of the other parameter(s) 128.

The vehicle 102 may then use the probability distributions of theparameters 128 to determine the estimated locations 116 of the firstobject 110. Additionally, the vehicle 102 may use similar processes todetermine parameters 128 for the vehicle 102, determine the probabilitydistributions associated with the parameters 128 for the vehicle 102,and determine the estimated locations 114 using the probabilitydistributions. Furthermore, the vehicle 102 may use similar processes todetermine parameters 128 for the second object 112, determine theprobability distributions associated with the parameters 128 for thesecond object 112, and determine the estimated locations 116 using theprobability distributions.

For a second example, the vehicle 102 may use the parameters 128 for thefirst object 110 in order to determine the estimated location 122(1) forthe first object 110. The vehicle 102 may then use the uncertaintymodel(s) 130 associated with the parameters 128 in order to determine atotal uncertainty associated with the estimated location 122(1). Usingthe total uncertainty, the vehicle 102 may determine the estimatedlocations 116 for the first object 110. Additionally, the vehicle 102may use similar processes to determine the estimated locations 114 forthe vehicle 102 and the estimated locations 118 for the second object112.

In either of the examples above, after determining the estimatedlocations 114-118, the vehicle 102 may determine a probability ofcollision using the estimated locations 114-118. For example, thevehicle 102 may determine the probability of collision between thevehicle 102 and the first object 110. In some instances, the vehicle 102may determine the probability of collision using at least an area ofgeometric overlap between the estimated locations 114 of the vehicle 102and the estimated locations 116 of the first object 110.

More specifically, the estimated locations 114 of the vehicle 102 may beGaussian with parameters μ_(v), σ_(v) (which may be represented by N(μ_(v), σ_(v) ²)). Additionally, the estimated locations 116 of thefirst object 110 may be Gaussian with parameters μ_(o), σ_(o) (which maybe represented by N(μ_(o), σ₀ ²)). The probability of overlap betweenthe estimated locations 114 and the estimated locations 116 may thentranslate to P[x=0], where x belongs to N(μ_(v)−μ_(o), σ₀ ²+σ_(v) ²).This may represent a one-dimensional problem associated with determiningthe probability of overlap.

In some instances, the vehicle 102 may perform similar processes inorder to extend the one-dimensional problem to a two-dimensionalproblem. Additionally, the vehicle 102 may perform similar processes inorder to determine the probability of collision between the vehicle 102and the second object 112. In some instances, the vehicle 102 may thendetermine a total probability of collision using the probability ofcollision between the vehicle 102 and the first object 110 and theprobability of collision between the vehicle 102 and the second object112. However, in the example of FIG. 1, the probability of collisionbetween the vehicle 102 and the second object 112 may be zero sincethere is no geometric overlap between the estimated locations 114 andthe estimated locations 118.

The vehicle 102 may then determine if the probability of collision isequal to or greater than a threshold. Based at least in part ondetermining that the probability of collision is less than thethreshold, the vehicle 102 may continue to navigate along the trajectory104. However, based at least in part on determining that the probabilityof collision is equal to or greater than the threshold, the vehicle 102may take one or more actions. The one or more actions may include, butare not limited to, navigating along a new trajectory, changing a speed(e.g., slowing down), parking, and/or the like.

It should be noted that, in some examples, the vehicle 102 may performsimilar processes in order to determine a probability of collisionbetween the object 110 and the object 112. The vehicle 102 may thenperform one or more actions based at least in part on the probability ofcollision. For instance, if the vehicle 102 determines that theprobability of collision between the object 110 and the object 112 isequal to or greater than a threshold, the vehicle 102 may stop.

FIG. 2 is an illustration of an example of the vehicle 102 analyzing thesensor data 106 using the error model(s) 126 in order to determineestimated locations associated with an object, in accordance withembodiments of the disclosure. For instance, sensor system(s) 202 of thevehicle 102 may generate the sensor data 106. The sensor data 106 maythen be analyzed by the component(s) 108 of the vehicle 102. In theexample of FIG. 2, the component(s) 108 may include a localizationcomponent 204, a perception component 206, a planning component 208, anda prediction component 210. However, in other examples, the vehicle 102may not include one or more of the localization component 204, theperception component 206, the planning component 208, or the predictioncomponent 210. Additionally, or alternatively, in some examples, thevehicle 102 may include one or more additional components.

One or more of the components 204-210 may then analyze the sensor data106 and generate outputs 212-218 based at least in part on the analysis.In some instances, the outputs 212-218 may include parameters associatedwith the vehicle 102 and/or objects. For a first example, the output 212from the localization component 204 may indicate the position of thevehicle 102. For a second example, the output 214 from the perceptioncomponent 206 may include detection, segmentation, classification,and/or the like associated with objects. For a third example, the output216 from the planning component 208 may include a path for the vehicle102 to traverse within the environment.

It should be noted that, while not illustrated in the example of FIG. 2,one or more of the components 204-210 may use outputs 212-218 from oneor more of the other components 204-210 in order to generate an output212-218. For example, the planning component 208 may use the output 212from the localization component 204 in order to generate the output 216.For another example, the planning component 208 may use the output 214from the perception component 206 in order to generate the output 216.Additionally to, or alternatively from, using the outputs 212-218 fromone or more other components 204-210, a component 204-210 may use theprobability distributions 220-226, which are described below.

Error component(s) 228 may be configured to process the outputs 212-218using the error model(s) 126 in order to generate the probabilitydistributions 220-226 associated with the outputs 212-218. In someinstances, the error component(s) 228 may be included within thecomponents 204-210. For example, the localization component 204 mayanalyze the sensor data 106 and, based at least in part on the analysis,generate both the output 212 and the probability distribution 220associated with the output 212. For another example, the perceptioncomponent 206 may analyze the sensor data 106 and, based at least inpart on the analysis, generate both the output 214 and the probabilitydistribution 222 associated with the output 214.

The probability distributions 220-226 may respectfully be associatedwith the outputs 212-218. For example, the error component(s) 228 mayprocess the output 212 using error model(s) 126 associated with thelocalization component 204 in order to generate the probabilitydistribution 220. For instance, if the output 212 indicates a locationof the vehicle 102, the probability distribution 220 may representestimated locations of the vehicle 102 that are based on the determinedlocation and error(s) represented by the error model(s) 126 for thelocalization component 204. Additionally, the error component(s) 228 mayprocess the output 214 using error model(s) 126 associated with theperception component 206 in order to generate the probabilitydistribution 222. For instance, if the output 214 indicates a speed ofan object, the probability distribution 222 may represent probablespeeds of the object that are based on the determined speed and error(s)represented by the error model(s) 126 for the perception component 206.

An estimation component 230 may be configured to process one or more ofthe probability distributions 220-226 and/or the sensor data 106 (notillustrated for clarity reasons) in order to generate estimatedlocations 232 associated with the vehicle 102 and/or objects. Asdiscussed herein, the estimated locations 232 may include a probabilitydistribution, such as a Gaussian distribution, of locations.

FIG. 3 is an illustration of another example of the vehicle 102analyzing the sensor data 106 using the error model(s) 126 in order todetermine estimated locations associated with an object, in accordancewith embodiments of the disclosure. In the example of FIG. 3, theestimation component 230 may analyze one or more of the outputs 212-218from one or more of the components 204-210 in order to determine anestimated location 302 associated with the vehicle 102 and/or an object.The error component(s) 228 may then use the error model(s) 126 and theestimated location 302 to determine the estimated locations 304 of thevehicle 102 and/or the object.

For example, the error component(s) 228 may use the error model(s) 126to determine total error(s) and/or total error percentages associatedwith the output(s) 212-218 of the component(s) 204-210 that were used todetermine the estimated location 302. The error component(s) 228 maythen use the total error(s) and/or total error percentages to generatethe estimated locations 304. As discussed herein, the estimatedlocations 304 may include a probability distribution, such as a Gaussiandistribution, of locations.

FIG. 4 is an illustration of an example of the vehicle 102 analyzing thesensor data 106 using the uncertainty model(s) 130 in order to determineestimated locations associated with an object, in accordance withembodiments of the disclosure. For instance, uncertainty component(s)402 may be configured to process the outputs 212-218 using theuncertainty model(s) 130 in order to generate probability distributions404-410 associated with the outputs 212-218. In some instances, theuncertainty component(s) 402 may be included within the components204-210. For example, the localization component 204 may analyze thesensor data 106 and, based at least in part on the analysis, generateboth the output 212 and the probability distribution 404 associated withthe output 212. For another example, the perception component 206 mayanalyze the sensor data 106 and, based at least in part on the analysis,generate both the output 214 and the probability distribution 406associated with the output 214.

It should be noted that, while not illustrated in the example of FIG. 4,one or more of the components 204-210 may use outputs 212-218 from oneor more of the other components 204-210 in order to generate an output212-218. For example, the planning component 208 may use the output 212from the localization component 204 in order to generate the output 216.For another example, the planning component 208 may use the output 214from the perception component 206 in order to generate the output 216.Additionally to, or alternatively from, using the outputs 212-218 fromone or more other components 204-210, a component 204-210 may use theprobability distributions 404-410.

The probability distributions 404-410 may respectfully be associatedwith the outputs 212-218. For example, the uncertainty component(s) 402may process the output 212 using the uncertainty model(s) 130 associatedwith the localization component 204 in order to generate the probabilitydistribution 404. For instance, if the output 212 indicates a locationof the vehicle 102, the probability distribution 404 may representestimated locations of the vehicle 102 that are based at least in parton the determined location and uncertainty model(s) 130 for thelocalization component 204. Additionally, the uncertainty component(s)402 may process the output 214 using uncertainty model(s) 130 associatedwith the perception component 206 in order to generate the probabilitydistribution 406. For instance, if the output 214 indicates a speed ofan object, the probability distribution 406 may represent probablespeeds of the object that are based on the determined speed and theuncertainty model(s) 130 for the perception component 206.

A estimation component 230 may be configured to process one or more ofthe probability distributions 404-410 and/or the sensor data 106 (notillustrated for clarity reasons) in order to generate estimatedlocations 412 associated with the vehicle 102 and/or the object. Asdiscussed herein, the estimated locations 412 may include a probabilitydistribution, such as a Gaussian distribution, of locations.

FIG. 5 is an illustration of another example of the vehicle 102analyzing the sensor data 106 using the uncertainty model(s) 130 inorder to determine estimated locations associated with an object, inaccordance with embodiments of the disclosure. In the example of FIG. 5,the estimation component 230 may analyze one or more of the outputs212-218 from one or more of the components 204-210 in order to determinethe estimated location 302 associated with the vehicle 102 and/or anobject. The uncertainty component(s) 402 may then use the uncertaintymodel(s) 130 and the estimated location 302 to determine the estimatedlocations 502 of the vehicle 102 and/or the object.

For example, the uncertainty component(s) 402 may use the uncertaintymodel(s) 130 for the components 204-210 to determine total uncertaintiesassociated with the output(s) 212-218 of the component(s) 204-210 thatwere used to determine the estimated location 302. The uncertaintycomponent(s) 402 may then use the total uncertainties to generate theestimated locations 502. As discussed herein, the estimated locations502 may include a probability distribution, such as a Gaussiandistribution, of locations.

FIG. 6 illustrates an example graph 600 illustrating the vehicle 102determining probabilities of collision over a period of time, inaccordance with embodiments of the disclosure. As shown, the graph 600represent probabilities 602 along the y-axis and time 604 along thex-axis. In the example of FIG. 6, the vehicle 102 may determine theprobabilities of collision at time 606(1). For instance, at time 606(1),the vehicle 102 may determine the probabilities of collision at threefuture times, time 606(2), time 606(3), and time 606(4). In someinstances, the probabilities of collision are associated with thevehicle 102 and a single object. In other instances, the probabilitiesof collision are associated with the vehicle 102 and more than oneobject.

As shown, the vehicle 102 may determine that there is a firstprobability of collision 608(1) at time 606(2), a second probability ofcollision 608(2) at time 606(3), and no probability of collision at time606(4). The first probability of collision 608(1) may be associated witha low risk, the second probability of collision 608(2) may be associatedwith a high risk, and since there is no probability of collision at time606(4), there is no risk of collision at time 606(4). In some instances,the first probability of collision 608(1) may be low risk based at leastin part on the first probability of collision 608(1) being below athreshold probability. Additionally, the second probability of collision608(2) may be high risk based at least in part on the second probabilityof collision 608(2) being equal to or greater than the thresholdprobability.

Although the example of FIG. 6 illustrates determining the probabilitiesof collision at discrete times, in some instances, the vehicle 102 maycontinuously be determining the probabilities of collision.

FIG. 7 illustrates an example 700 of generating error model data basedat least in part on vehicle data and ground truth data, in accordancewith embodiments of the present disclosure. As depicted in FIG. 7,vehicle(s) 702 can generate vehicle data 704 and transmit the vehicledata 704 to an error model component 706. As discussed herein, the errormodel component 706 can determine an error model 126 that can indicatean error associated with a parameter. For example, the vehicle data 704can be data associated with a component of the vehicle(s) 702 such asthe perception component 206, the planning component 208, thelocalization component 204, the estimation component 230, and/or thelike. By way of example and without limitation, the vehicle data 704 canbe associated with the perception component 206 and the vehicle data 704can include a bounding box associated with an object detected by thevehicle(s) 702 in an environment.

The error model component 706 can receive ground truth data 708 whichcan be manually labeled and/or determined from other, validated, machinelearned components. By way of example and without limitation, the groundtruth data 708 can include a validated bounding box that is associatedwith the object in the environment. By comparing the bounding box of thevehicle data 704 with the bounding box of the ground truth data 708, theerror model component 706 can determine an error associated with thesystem (e.g., the component) of the vehicle(s) 702. Such errors maycomprise, for example, differences between the ground truth and theoutput, percent differences, error rates, and the like. In someinstances, the vehicle data 704 can include one or more characteristics(also referred to as parameters) associated with a detected entityand/or the environment in which the entity is positioned. In someexamples, characteristics associated with an entity can include, but arenot limited to, an x-position (global position), a y-position (globalposition), a z-position (global position), an orientation, an entitytype (e.g., a classification), a velocity of the entity, an extent ofthe entity (size), etc. Characteristics associated with the environmentcan include, but are not limited to, a presence of another entity in theenvironment, a state of another entity in the environment, a time ofday, a day of a week, a season, a weather condition, an indication ofdarkness/light, etc. Therefore, the error can be associated with theother characteristics (e.g., environmental parameters). In at least someexamples, such error models may be determined for various groupings ofparameters (e.g., distinct models for different combinations ofclassifications, distances, speeds, etc.). In at least some examples,such parameters may further comprise environmental information such as,but not limited to, the number of objects, the time of day, the time ofyear, weather conditions, and the like.

The error model component 706 can process a plurality of vehicle data704 and a plurality of ground truth data 708 to determine error modeldata 710. The error model data 710 can include the error calculated bythe error model component 706 which can be represented as error712(1)-(3). Additionally, the error model component 706 can determine aprobability associated with the error 712(1)-(3) represented asprobability 714(1)-(3) which can be associated with an environmentalparameter to present error models 716(1)-(3) (which may represent errormodels 126). By way of example and without limitation, the vehicle data704 can include a bounding box associated with an object at a distanceof 50 meters from the vehicle(s) 702 in an environment that includesrainfall. The ground truth data 708 can provide the validated boundingbox associated with the object. The error model component 706 candetermine error model data 710 that determines that the error associatedwith the perception system of the vehicle(s) 702. The distance of 50meters and the rainfall can be used as environmental parameters todetermine which of error model of error models 716(1)-(3) to use. Oncethe error model is identified, the error model 716(1)-(3) can provide anerror 712(1)-(3) based on the probability 714(1)-(3) where errors712(1)-(3) associated with higher probabilities 714(1)-(3) are morelikely to be selected than errors 712(1)-(3) associated with lowerprobabilities 714(1)-(3).

FIG. 8 illustrates an example 800 of the vehicle(s) 702 generatingvehicle data 704 and transmitting the vehicle data 704 to the computingdevice(s) 802, in accordance with embodiments of the present disclosure.As discussed above, the error model component 706 can determine aperception error model that can indicate an error associated with aparameter. As discussed above, the vehicle data 704 can include sensordata generated by a sensor of the vehicle(s) 702 and/or perception datagenerated by a perception system of the vehicle(s) 702. The perceptionerror model can be determined by comparing the vehicle data 704 againstground truth data 708. The ground truth data 708 can be manually labeledand can be associated with the environment and can represent a knownresult. Therefore, a deviation from the ground truth data 708 in thevehicle data 704 can be identified as an error in a sensor system and/orthe perception system of the vehicle(s) 702. By way of example andwithout limitation, a perception system can identify an object as abicyclist where the ground truth data 708 indicates that the object is apedestrian. By way of another example and without limitation, a sensorsystem can generate sensor data that represents an object as having awidth of 2 meters where the ground truth data 708 indicates that theobject has a width of 3 meters.

As discussed above, the error model component 706 can determine aclassification associated with the object represented in the vehicledata 704 and determine other objects of the same classification in thevehicle data 704 and/or other log data. Then the error model component706 can determine a probability distribution associated with a range oferrors of associated with the object. Based on the comparison and therange of errors, the error model component 706 can determine theestimated locations 502.

As depicted in FIG. 8, an environment 804 can include objects 806(1)-(3)represented as bounding boxes generated by a perception system. Theperception error model data 808 can indicate scenario parameters as810(1)-(3) and the error associated with the scenario parameters as812(1)-(3).

FIG. 9 illustrates an example 900 of generating uncertainty data basedat least in part on vehicle data and ground truth data, in accordancewith embodiments of the present disclosure. As depicted in FIG. 9, thevehicle(s) 702 can generate the vehicle data 704 and transmit thevehicle data 704 to an uncertainty model component 902. As discussedherein, the uncertainty model component 902 can determine uncertaintiesassociated with components determining parameters. For example, thevehicle data 704 can be data associated with a component of thevehicle(s) 702 such as the perception component 206, the planningcomponent 208, the localization component 204, the prediction component210, and/or the like. By way of example and without limitation, thevehicle data 704 can be associated with the perception component 206 andthe vehicle data 704 can include a bounding box associated with anobject detected by the vehicle(s) 702 in an environment.

The uncertainty model component 902 can receive ground truth data 708which can be manually labeled and/or determined from other, validated,machine learned components. By way of example and without limitation,the ground truth data 708 can include a validated bounding box that isassociated with the object in the environment. By comparing the vehicledata 704 with the ground truth data 708, the uncertainty model component902 can determine a consistency for which the system (e.g., thecomponent) of the vehicle(s) 702 determine the ground truth. Forinstance, the consistency may indicate the percentage for which theparameters represented by the vehicle data 704 are the same as theparameter represented by the ground truth data 708.

The uncertainty model component 902 may then use the consistency togenerate uncertainty data 904 associated with the component thatdetermine the parameter and/or associated with the component determiningthe parameter. For instance, if the consistency indicates that there isa low percentage, then the uncertainty data 904 may indicate a highuncertainty. However, if the consistency data indicates that there is ahigh percentage, then the uncertainty data 904 may indicate a lowuncertainty.

For more detail, the uncertainty model component 902 may identify one ormore types of uncertainty. The types of uncertainty may include, but arenot limited to, epistemic uncertainty, aleatoric uncertainty (e.g.,data-dependent, task-dependent, etc.), and/or the like. Epistemicuncertainty may be associated with ignorance about which a componentgenerated data. Aleatoric uncertainty may be associated with uncertaintywith respect to information for which the data cannot explain. Theuncertainty model component 902 may then use the identifieduncertainty(ies) to generate the uncertainty model(s) 130.

In some instances, the uncertainty model component 902 may input thedata into a component multiple times, where one or more nodes of thecomponent are changed when inputting the data, which causes the outputsof the component to differ. This may cause the range in the outputs fromthe component. In some instances, the component may further output themean and/or the variance of the outputs. The uncertainty model component902 may then use the distribution associated with the range of theoutputs, the mean, and/or the variance to generate the uncertaintymodel(s) 130 for the component and/or the type of output (e.g., theparameter).

FIG. 10 depicts a block diagram of an example system 1000 forimplementing the techniques discussed herein. In at least one example,the system 1000 can include the vehicle 102. In the illustrated example1000, the vehicle 102 is an autonomous vehicle; however, the vehicle 102can be any other type of vehicle (e.g., a driver-controlled vehicle thatmay provide an indication of whether it is safe to perform variousmaneuvers).

The vehicle 102 can include computing device(s) 1002, one or more sensorsystem(s) 202, one or more emitter(s) 1004, one or more communicationconnection(s) 1006 (also referred to as communication devices and/ormodems), at least one direct connection 1008 (e.g., for physicallycoupling with the vehicle 102 to exchange data and/or to provide power),and one or more drive system(s) 1010. The one or more sensor system(s)202 can be configured to capture the sensor data 106 associated with anenvironment.

The sensor system(s) 202 can include time-of-flight sensors, locationsensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertialmeasurement units (IMUs), accelerometers, magnetometers, gyroscopes,etc.), lidar sensors, radar sensors, sonar sensors, infrared sensors,cameras (e.g., RGB, IR, intensity, depth, etc.), microphone sensors,environmental sensors (e.g., temperature sensors, humidity sensors,light sensors, pressure sensors, etc.), ultrasonic transducers, wheelencoders, etc. The sensor system(s) 202 can include multiple instancesof each of these or other types of sensors. For instance, thetime-of-flight sensors can include individual time-of-flight sensorslocated at the corners, front, back, sides, and/or top of the vehicle102. As another example, the camera sensors can include multiple camerasdisposed at various locations about the exterior and/or interior of thevehicle 102. The sensor system(s) 202 can provide input to the computingdevice(s) 1002.

The vehicle 102 can also include one or more emitter(s) 1004 foremitting light and/or sound. The one or more emitter(s) 1004 in thisexample include interior audio and visual emitters to communicate withpassengers of the vehicle 102. By way of example and not limitation,interior emitters can include speakers, lights, signs, display screens,touch screens, haptic emitters (e.g., vibration and/or force feedback),mechanical actuators (e.g., seatbelt tensioners, seat positioners,headrest positioners, etc.), and the like. The one or more emitter(s)1004 in this example also include exterior emitters. By way of exampleand not limitation, the exterior emitters in this example include lightsto signal a direction of travel or other indicator of vehicle action(e.g., indicator lights, signs, light arrays, etc.), and one or moreaudio emitters (e.g., speakers, speaker arrays, horns, etc.) to audiblycommunicate with pedestrians or other nearby vehicles, one or more ofwhich may comprise acoustic beam steering technology.

The vehicle 102 can also include one or more communication connection(s)1006 that enable communication between the vehicle 102 and one or moreother local or remote computing device(s) (e.g., a remote teleoperationscomputing device) or remote services. For instance, the communicationconnection(s) 1006 can facilitate communication with other localcomputing device(s) on the vehicle 102 and/or the drive system(s) 1010.Also, the communication connection(s) 1006 can allow the vehicle 102 tocommunicate with other nearby computing device(s) (e.g., other nearbyvehicles, traffic signals, etc.).

The communications connection(s) 1006 can include physical and/orlogical interfaces for connecting the computing device(s) 1002 toanother computing device or one or more external network(s) 1012 (e.g.,the Internet). For example, the communications connection(s) 1006 canenable Wi-Fi-based communication such as via frequencies defined by theIEEE 802.11 standards, short range wireless frequencies such asBluetooth, cellular communication (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.),satellite communication, dedicated short-range communications (DSRC), orany suitable wired or wireless communications protocol that enables therespective computing device to interface with the other computingdevice(s). In at least some examples, the communication connection(s)1006 may comprise the one or more modems as described in detail above.

In at least one example, the vehicle 102 can include one or more drivesystem(s) 1010. In some examples, the vehicle 102 can have a singledrive system 1010. In at least one example, if the vehicle 102 hasmultiple drive systems 1010, individual drive systems 1010 can bepositioned on opposite ends of the vehicle 102 (e.g., the front and therear, etc.). In at least one example, the drive system(s) 1010 caninclude one or more sensor system(s) 202 to detect conditions of thedrive system(s) 1010 and/or the surroundings of the vehicle 102. By wayof example and not limitation, the sensor system(s) 202 can include oneor more wheel encoders (e.g., rotary encoders) to sense rotation of thewheels of the drive systems, inertial sensors (e.g., inertialmeasurement units, accelerometers, gyroscopes, magnetometers, etc.) tomeasure orientation and acceleration of the drive system, cameras orother image sensors, ultrasonic sensors to acoustically detect objectsin the surroundings of the drive system, lidar sensors, radar sensors,etc. Some sensors, such as the wheel encoders can be unique to the drivesystem(s) 1010. In some cases, the sensor system(s) 202 on the drivesystem(s) 1010 can overlap or supplement corresponding systems of thevehicle 102 (e.g., sensor system(s) 202).

The drive system(s) 1010 can include many of the vehicle systems,including a high voltage battery, a motor to propel the vehicle, aninverter to convert direct current from the battery into alternatingcurrent for use by other vehicle systems, a steering system including asteering motor and steering rack (which can be electric), a brakingsystem including hydraulic or electric actuators, a suspension systemincluding hydraulic and/or pneumatic components, a stability controlsystem for distributing brake forces to mitigate loss of traction andmaintain control, an HVAC system, lighting (e.g., lighting such ashead/tail lights to illuminate an exterior surrounding of the vehicle),and one or more other systems (e.g., cooling system, safety systems,onboard charging system, other electrical components such as a DC/DCconverter, a high voltage junction, a high voltage cable, chargingsystem, charge port, etc.). Additionally, the drive system(s) 1010 caninclude a drive system controller which can receive and preprocess datafrom the sensor system(s) 202 and to control operation of the variousvehicle systems. In some examples, the drive system controller caninclude one or more processor(s) and memory communicatively coupled withthe one or more processor(s). The memory can store one or more modulesto perform various functionalities of the drive system(s) 1010.Furthermore, the drive system(s) 1010 also include one or morecommunication connection(s) that enable communication by the respectivedrive system with one or more other local or remote computing device(s).

The computing device(s) 1002 can include one or more processors 1014 andmemory 1016 communicatively coupled with the processor(s) 1014. In theillustrated example, the memory 1016 of the computing device(s) 1002stores the localization component 204, the perception component 206, theprediction component 210, the estimation component 230, the planningcomponent 208, the error component(s) 228, the uncertainty component(s)402, and one or more sensor system 202. Though depicted as residing inthe memory 1016 for illustrative purposes, it is contemplated that thelocalization component 204, the perception component 206, the predictioncomponent 210, the estimation component 230, the planning component 208,the error component(s) 228, the uncertainty component(s) 402, and theone or more system controller(s) 1018 can additionally, oralternatively, be accessible to the computing device(s) 1002 (e.g.,stored in a different component of vehicle 102 and/or be accessible tothe vehicle 102 (e.g., stored remotely).

In memory 1016 of the computing device(s) 1002, the localizationcomponent 204 can include functionality to receive data from the sensorsystem(s) 202 to determine a position of the vehicle 102. For example,the localization component 204 can include and/or request/receive athree-dimensional map of an environment and can continuously determine alocation of the autonomous vehicle within the map. In some instances,the localization component 204 can use SLAM (simultaneous localizationand mapping) or CLAMS (calibration, localization and mapping,simultaneously) to receive time-of-flight data, image data, lidar data,radar data, sonar data, IMU data, GPS data, wheel encoder data, or anycombination thereof, and the like to accurately determine a location ofthe autonomous vehicle. In some instances, the localization component204 can provide data to various components of the vehicle 102 todetermine an initial position of an autonomous vehicle for generating atrajectory, as discussed herein.

The perception component 206 can include functionality to perform objectdetection, segmentation, and/or classification. In some examples, theperception component 206 can provide processed sensor data thatindicates a presence of an entity that is proximate to the vehicle 102and/or a classification of the entity as an entity type (e.g., car,pedestrian, cyclist, building, tree, road surface, curb, sidewalk,unknown, etc.). In additional and/or alternative examples, theperception component 206 can provide processed sensor data thatindicates one or more characteristics (also referred to as parameters)associated with a detected entity and/or the environment in which theentity is positioned. In some examples, characteristics associated withan entity can include, but are not limited to, an x-position (globalposition), a y-position (global position), a z-position (globalposition), an orientation, an entity type (e.g., a classification), avelocity of the entity, an extent of the entity (size), etc.Characteristics associated with the environment can include, but are notlimited to, a presence of another entity in the environment, a state ofanother entity in the environment, a time of day, a day of a week, aseason, a weather condition, a geographic position, an indication ofdarkness/light, etc.

The perception component 206 can include functionality to storeperception data generated by the perception component 206. In someinstances, the perception component 206 can determine a trackcorresponding to an object that has been classified as an object type.For purposes of illustration only, the perception component 206, usingsensor system(s) 202 can capture one or more images of an environment.The sensor system(s) 202 can capture images of an environment thatincludes an object, such as a pedestrian. The pedestrian can be at afirst position at a time T and at a second position at time T+t (e.g.,movement during a span of time t after time T). In other words, thepedestrian can move during this time span from the first position to thesecond position. Such movement can, for example, be logged as storedperception data associated with the object.

The stored perception data can, in some examples, include fusedperception data captured by the vehicle. Fused perception data caninclude a fusion or other combination of sensor data from sensorsystem(s) 202, such as image sensors, lidar sensors, radar sensors,time-of-flight sensors, sonar sensors, global positioning systemsensors, internal sensors, and/or any combination of these. The storedperception data can additionally or alternatively include classificationdata including semantic classifications of objects (e.g., pedestrians,vehicles, buildings, road surfaces, etc.) represented in the sensordata. The stored perception data can additionally or alternativelyinclude a track data (collections of historical positions, orientations,sensor features, etc. associated with the object over time)corresponding to motion of objects classified as dynamic objects throughthe environment. The track data can include multiple tracks of multipledifferent objects over time. This track data can be mined to identifyimages of certain types of objects (e.g., pedestrians, animals, etc.) attimes when the object is stationary (e.g., standing still) or moving(e.g., walking, running, etc.). In this example, the computing devicedetermines a track corresponding to a pedestrian.

The prediction component 210 can generate one or more probability mapsrepresenting prediction probabilities of estimated locations of one ormore objects in an environment. For example, the prediction component210 can generate one or more probability maps for vehicles, pedestrians,animals, and the like within a threshold distance from the vehicle 102.In some instances, the prediction component 210 can measure a track ofan object and generate a discretized prediction probability map, a heatmap, a probability distribution, a discretized probability distribution,and/or a trajectory for the object based on observed and predictedbehavior. In some instances, the one or more probability maps canrepresent an intent of the one or more objects in the environment.

The planning component 208 can determine a path for the vehicle 102 tofollow to traverse through an environment. For example, the planningcomponent 208 can determine various routes and paths and various levelsof detail. In some instances, the planning component 208 can determine aroute to travel from a first location (e.g., a current location) to asecond location (e.g., a target location). For the purpose of thisdiscussion, a route can be a sequence of waypoints for traveling betweentwo locations. As non-limiting examples, waypoints include streets,intersections, global positioning system (GPS) coordinates, etc.Further, the planning component 208 can generate an instruction forguiding the vehicle 102 along at least a portion of the route from thefirst location to the second location. In at least one example, theplanning component 208 can determine how to guide the vehicle 102 from afirst waypoint in the sequence of waypoints to a second waypoint in thesequence of waypoints. In some examples, the instruction can be a path,or a portion of a path. In some examples, multiple paths can besubstantially simultaneously generated (i.e., within technicaltolerances) in accordance with a receding horizon technique. A singlepath of the multiple paths in a receding data horizon having the highestconfidence level may be selected to operate the vehicle.

In other examples, the planning component 208 can alternatively, oradditionally, use data from the perception component 206 and/or theprediction component 210 to determine a path for the vehicle 102 tofollow to traverse through an environment. For example, the planningcomponent 208 and/or the prediction component 210 can receive data fromthe perception component 206 regarding objects associated with anenvironment. Using this data, the planning component 208 can determine aroute to travel from a first location (e.g., a current location) to asecond location (e.g., a target location) to avoid objects in anenvironment. In at least some examples, such a planning component 208may determine there is no such collision free path and, in turn, providea path which brings vehicle 102 to a safe stop avoiding all collisionsand/or otherwise mitigating damage.

In at least one example, the computing device(s) 1002 can include one ormore system controllers 1018, which can be configured to controlsteering, propulsion, braking, safety, emitters, communication, andother systems of the vehicle 102. These system controller(s) 1018 cancommunicate with and/or control corresponding systems of the drivesystem(s) 1010 and/or other components of the vehicle 102, which may beconfigured to operate in accordance with a path provided from theplanning component 208.

The vehicle 102 can connect to computing device(s) 802 via thenetwork(s) 1012 and can include one or more processors 1020 and memory1022 communicatively coupled with the one or more processors 820. In atleast one instance, the processor(s) 820 can be similar to theprocessor(s) 1014 and the memory 1022 can be similar to the memory 1016.In the illustrated example, the memory 1022 of the computing device(s)802 stores the vehicle data 704, the ground truth data 708, and theerror model component 706. Though depicted as residing in the memory1022 for illustrative purposes, it is contemplated that the vehicle data704, the ground truth data 708, and/or the error model component 706 canadditionally, or alternatively, be accessible to the computing device(s)802 (e.g., stored in a different component of computing device(s) 802and/or be accessible to the computing device(s) 802 (e.g., storedremotely).

The processor(s) 1014 of the computing device(s) 1002 and theprocessor(s) 1020 of the computing device(s) 802 can be any suitableprocessor capable of executing instructions to process data and performoperations as described herein. By way of example and not limitation,the processor(s) 1014 and 1020 can comprise one or more CentralProcessing Units (CPUs), Graphics Processing Units (GPUs), or any otherdevice or portion of a device that processes electronic data totransform that electronic data into other electronic data that can bestored in registers and/or memory. In some examples, integrated circuits(e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardwaredevices can also be considered processors in so far as they areconfigured to implement encoded instructions.

The memory 1016 of the computing device(s) 1002 and the memory 1022 ofthe computing device(s) 802 are examples of non-transitorycomputer-readable media. The memory 1016 and 1022 can store an operatingsystem and one or more software applications, instructions, programs,and/or data to implement the methods described herein and the functionsattributed to the various systems. In various implementations, thememory 1016 and 1022 can be implemented using any suitable memorytechnology, such as static random access memory (SRAM), synchronousdynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type ofmemory capable of storing information. The architectures, systems, andindividual elements described herein can include many other logical,programmatic, and physical components, of which those shown in theaccompanying figures are merely examples that are related to thediscussion herein.

In some instances, aspects of some or all of the components discussedherein can include any models, algorithms, and/or machine learningalgorithms. For example, in some instances, the components in the memory1016 and 1022 can be implemented as a neural network.

FIGS. 11-14 illustrate example processes in accordance with embodimentsof the disclosure. These processes are illustrated as logical flowgraphs, each operation of which represents a sequence of operations thatmay be implemented in hardware, software, or a combination thereof. Inthe context of software, the operations represent computer-executableinstructions stored on one or more computer-readable storage media that,when executed by one or more processors, perform the recited operations.Generally, computer-executable instructions include routines, programs,objects, components, data structures, and the like that performparticular functions or implement particular abstract data types. Theorder in which the operations are described is not intended to beconstrued as a limitation, and any number of the described operationsmay be combined in any order and/or in parallel to implement theprocesses.

FIG. 11 depicts an example process 1100 for performing collisionmonitoring using error models, in accordance with embodiments of thedisclosure. At operation 1102, the process 1100 may include receivingsensor data generated by one or more sensors. For instance, the vehicle102 may be navigating along a path from a first location to a secondlocation. While navigating, the vehicle 102 may generate the sensor datausing one or more sensors of the vehicle 102.

At operations 1104, the process 1100 may include determining, using atleast a first system of a vehicle, at least a parameter associated withthe vehicle based at least in part on a first portion of the sensordata. For instance, the vehicle 102 may analyze the first portion of thesensor data using one or more systems. The one or more systems mayinclude, but are not limited to, a localization system, a perceptionsystem, a planning system, a prediction system, and/or the like. Basedat least in part on the analysis, the vehicle 102 may determine theparameter associated with the vehicle 102. The parameter may include,but is not limited to, a location of the vehicle 102, a speed of thevehicle 102, a direction of travel of the vehicle 102, and/or the like.

At operation 1106, the process 1100 may include determining estimatedlocations associated with the vehicle based at least in part on theparameter associated with the vehicle and a first error model associatedwith the first system. For instance, the vehicle 102 may process atleast the parameter associated with the vehicle 102 using the firsterror model. As discussed herein, the first error model can representerror(s) and/or error percentages associated with the output of thefirst system. Based at least in part on the processing, the vehicle 102may determine the estimated locations associated with the vehicle 102 ata later time. As also discussed herein, the estimated locations maycorrespond to a probability distribution of locations.

At operations 1108, the process 1100 may include determining, using atleast a second system of the vehicle, at least a parameter associatedwith an object based at least in part on a second portion of the sensordata. For instance, the vehicle 102 may analyze the sensor data and,based at least in part on the analysis, identify the object. The vehicle102 may then analyze the second portion of the sensor data using the oneor more systems. Based at least in part on the analysis, the vehicle 102may determine the parameter associated with the object. The parametermay include, but is not limited to, a type of the object, a location ofthe object, a speed of the object, a direction of travel of the object,and/or the like.

At operation 1110, the process 1100 may include determining estimatedlocations associated with the object based at least in part on theparameter associated with the object and a second error model associatedwith the second system. For instance, the vehicle 102 may process atleast the parameter associated with the object using the second errormodel. As discussed herein, the second error model can representerror(s) and/or error percentages associated with the output of thesecond system. Based at least in part on the processing, the vehicle 102may determine the estimated locations associated with the object at thelater time. As also discussed herein, the estimated locations maycorrespond to a probability distribution of locations.

At operation 1112, the process 1100 may include determining aprobability of collision based at least in part on the estimatedlocations associated with the vehicle and the estimated locationsassociated with the object. For instance, the vehicle 102 may analyzethe estimated locations associated with the vehicle 102 and theestimated locations associated with the object in order to determine theprobability of collision. In some instances, the probability ofcollision may be based at least in part on an amount of overlap betweenthe estimated locations associated with the vehicle 102 and theestimated locations associated with the object.

At operation 1114, the process 1100 may include determining if theprobability of collision is equal to or greater than a threshold. Forinstance, the vehicle 102 may compare the probability of collision tothe threshold in order to determine if the probability of collision isequal to or greater than the threshold.

If, at operation 1114 it is determined that the probability of collisionis not equal to or greater than the threshold, then at operation 1116,the process 1100 may include causing the vehicle to continue to navigatealong a path. For instance, if the vehicle 102 determines that theprobability of collision is less than the threshold, then the vehicle102 may continue to navigate along the path.

However, if at operation 1114 it is determined that the probability ofcollision is equal to or greater than the threshold, then at operation1118, the process 1100 may include causing the vehicle to perform one ormore actions. For instance, if the vehicle 102 determines that theprobability of collision is equal to or greater than the threshold, thenthe vehicle 102 may perform the one or more actions. The one or moreactions may include, but are not limited to, changing a path of thevehicle 102, changing a speed of the vehicle 102, parking the vehicle102, and/or the like.

FIG. 12 depicts an example process 1200 for using error models todetermine estimated locations associated with an object, in accordancewith embodiments of the disclosure. At operation 1202, the process 1200may include receiving sensor data generated by one or more sensors. Forinstance, the vehicle 102 may be navigating along a path from a firstlocation to a second location. While navigating, the vehicle 102 maygenerate the sensor data using one or more sensors of the vehicle 102.

At operations 1204, the process 1200 may include determining, using oneor more systems of a vehicle, a first parameter associated with anobject based at least in part the sensor data. For instance, the vehicle102 may analyze the sensor data using one or more systems. The one ormore systems may include, but are not limited to, a localization system,a perception system, a planning system, a prediction system, and/or thelike. Based at least in part on the analysis, the vehicle 102 maydetermine the first parameter associated with the object (e.g., thevehicle or another object). The first parameter may include, but is notlimited to, a location of the object, a speed of the object, a directionof travel of the object, and/or the like.

At operation 1206, the process 1200 may include determining a firstprobability distribution associated with the first parameter based atleast in part on a first error model. For instance, the vehicle 102 mayprocess at least the first parameter using the first error model. Asdiscussed herein, the first error model can represent error(s) and/orerror percentages associated with the first parameter. Based at least inpart on the processing, the vehicle 102 may determine the firstprobability distribution associated with the first parameter.

At operations 1208, the process 1200 may include determining, using oneor more systems of the vehicle, a second parameter associated with theobject based at least in part on at least one of the sensor data or thefirst probability distribution. For instance, the vehicle 102 mayanalyze the at least one of the sensor data or the first probabilitydistribution using the one or more systems. In some instances, thevehicle 102 analyzes the first probability distribution when the secondparameter is determined using the first parameter. Based at least inpart on the analysis, the vehicle 102 may determine the second parameterassociated with the object (e.g., the vehicle or another object). Thesecond parameter may include, but is not limited to, a location of theobject, a speed of the object, a direction of travel of the object, anestimated location of the object at a future time, and/or the like.

At operation 1210, the process 1200 may include determining a secondprobability distribution associated with the second parameter based atleast in part on a second error model. For instance, the vehicle 102 mayprocess at least the second parameter using the second error model. Asdiscussed herein, the second error model can represent error(s) and/orerror percentages associated with the second parameter. Based at leastin part on the processing, the vehicle 102 may determine the secondprobability distribution associated with the second parameter.

At operation 1212, the process 1200 may include determining estimatedlocations associated with the object based at least in part on at leastone of the first probability distribution or the second probabilitydistribution. For instance, the vehicle 102 may determine the estimatedlocations based at least in part on the first probability distributionand/or the second probability distribution. In some instances, if thefirst parameter and the second parameter are independent, such as thefirst parameter indicating a current location of the object and thesecond parameter indicating a speed of the object, then the vehicle 102may determine the estimated locations using both the first probabilitydistribution and the second probability distribution. In some instances,if the second parameter is determined using the first parameter, such asif the second parameter indicates an estimated location of the object ata future time that is determined using the first parameter indicatingthe speed of the object, then the vehicle 102 may determine theestimated locations using the second probability distribution.

FIGS. 13A-13B depict an example process 1300 for performing collisionmonitoring using uncertainty models, in accordance with embodiments ofthe disclosure. At operation 1302, the process 1300 may includereceiving sensor data generated by one or more sensors. For instance,the vehicle 102 may be navigating along a path from a first location toa second location. While navigating, the vehicle 102 may generate thesensor data using one or more sensors of the vehicle 102.

At operations 1304, the process 1300 may include determining, using atleast a first system of a vehicle, at least a parameter associated withthe vehicle based at least in part on a first portion of the sensordata. For instance, the vehicle 102 may analyze the first portion of thesensor data using one or more systems. The one or more systems mayinclude, but are not limited to, a localization system, a perceptionsystem, a planning system, a prediction system, and/or the like. Basedat least in part on the analysis, the vehicle 102 may determine theparameter associated with the vehicle 102. The parameter may include,but is not limited to, a location of the vehicle 102, a speed of thevehicle 102, a direction of travel of the vehicle 102, and/or the like.

At 1306, the process 1300 may include determining a first uncertaintymodel associated with the first system determining the parameterassociated with the vehicle. For instance, the vehicle 102 may determinethe first uncertainty model. In some instances, the vehicle 102determines the first uncertainty model by receiving the firstuncertainty model from the first system. In some instances, the vehicle102 determines the first uncertainty model using uncertainty dataindicating uncertainties associated with the first system determiningthe first parameter.

At operation 1308, the process 1300 may include determining estimatedlocations associated with the vehicle based at least in part on theparameter associated with the vehicle and the first uncertainty model.For instance, the vehicle 102 may process at least the parameterassociated with the vehicle 102 using the first uncertainty model. Basedat least in part on the processing, the vehicle 102 may determine theestimated locations associated with the vehicle 102 at a later time. Asalso discussed herein, the estimated locations may correspond to aprobability distribution of locations.

At operations 1310, the process 1300 may include determining, using atleast a second system of the vehicle, at least a parameter associatedwith an object based at least in part on a second portion of the sensordata. For instance, the vehicle 102 may analyze the sensor data and,based at least in part on the analysis, identify the object. The vehicle102 may then analyze the second portion of the sensor data using the oneor more systems. Based at least in part on the analysis, the vehicle 102may determine the parameter associated with the object. The parametermay include, but is not limited to, a type of the object, a location ofthe object, a speed of the object, a direction of travel of the object,and/or the like.

At 1312, the process 1300 may include determining a second uncertaintymodel associated with the second system determining the parameterassociated with the object. For instance, the vehicle 102 may determinethe second uncertainty model. In some instances, the vehicle 102determines the second uncertainty model by receiving the seconduncertainty model from the second system. In some instances, the vehicle102 determines the second uncertainty model using uncertainty dataindicating uncertainties associated with the second system determiningthe second parameter.

At operation 1314, the process 1300 may include determining estimatedlocations associated with the object based at least in part on theparameter associated with the object and the second uncertainty model.For instance, the vehicle 102 may process at least the parameterassociated with the object using the second uncertainty model. Based atleast in part on the processing, the vehicle 102 may determine theestimated locations associated with the object at the later time. Asalso discussed herein, the estimated locations may correspond to aprobability distribution of locations.

At operation 1316, the process 1300 may include determining aprobability of collision based at least in part on the estimatedlocations associated with the vehicle and the estimated locationsassociated with the object. For instance, the vehicle 102 may analyzethe estimated locations associated with the vehicle 102 and theestimated locations associated with the object in order to determine theprobability of collision. In some instances, the probability ofcollision may be based at least in part on an amount of overlap betweenthe estimated locations associated with the vehicle 102 and theestimated locations associated with the object.

At operation 1318, the process 1300 may include determining if theprobability of collision is equal to or greater than a threshold. Forinstance, the vehicle 102 may compare the probability of collision tothe threshold in order to determine if the probability of collision isequal to or greater than the threshold.

If, at operation 1318 it is determined that the probability of collisionis not equal to or greater than the threshold, then at operation 1320,the process 1300 may include causing the vehicle to continue to navigatealong a path. For instance, if the vehicle 102 determines that theprobability of collision is less than the threshold, then the vehicle102 may continue to navigate along the path.

However, if at operation 1318 it is determined that the probability ofcollision is equal to or greater than the threshold, then at operation1322, the process 1300 may include causing the vehicle to perform one ormore actions. For instance, if the vehicle 102 determines that theprobability of collision is equal to or greater than the threshold, thenthe vehicle 102 may perform the one or more actions. The one or moreactions may include, but are not limited to, changing a path of thevehicle 102, changing a speed of the vehicle 102, parking the vehicle102, and/or the like.

It should be noted that, in some examples, the vehicle 102 may performsteps 1304-1314 using multiple possible routes associated with thevehicle 102. In such examples, the vehicle 102 may select the route thatincludes the lowest uncertainty and/or the lowest probability ofcollision.

FIG. 14 depicts an example process 1400 for using uncertainty models todetermine estimated locations associated with an object, in accordancewith embodiments of the disclosure. At operation 1402, the process 1400may include receiving sensor data generated by one or more sensors. Forinstance, the vehicle 102 may be navigating along a path from a firstlocation to a second location. While navigating, the vehicle 102 maygenerate the sensor data using one or more sensors of the vehicle 102.

At operations 1404, the process 1400 may include determining, using oneor more systems of a vehicle, a first parameter associated with anobject based at least in part the sensor data. For instance, the vehicle102 may analyze the sensor data using one or more systems. The one ormore systems may include, but are not limited to, a localization system,a perception system, a planning system, a prediction system, and/or thelike. Based at least in part on the analysis, the vehicle 102 maydetermine the first parameter associated with the object (e.g., thevehicle or another object). The first parameter may include, but is notlimited to, a location of the object, a speed of the object, a directionof travel of the object, and/or the like.

At operation 1406, the process 1400 may include determining a firstprobability distribution associated with the first parameter based atleast in part on a first uncertainty model. For instance, the vehicle102 may process at least the first parameter using the first uncertaintymodel. Based at least in part on the processing, the vehicle 102 maydetermine the first probability distribution associated with the firstparameter.

At operations 1408, the process 1400 may include determining, using oneor more systems of the vehicle, a second parameter associated with theobject based at least in part on at least one of the sensor data or thefirst probability distribution. For instance, the vehicle 102 mayanalyze the at least one of the sensor data or the first probabilitydistribution using the one or more systems. In some instances, thevehicle 102 analyze the first probability distribution when the secondparameter is determined using the first parameter. Based at least inpart on the analysis, the vehicle 102 may determine the second parameterassociated with the object (e.g., the vehicle or another object). Thesecond parameter may include, but is not limited to, a location of theobject, a speed of the object, a direction of travel of the object, anestimated location of the object at a future time, and/or the like.

At operation 1410, the process 1400 may include determining a secondprobability distribution associated with the second parameter based atleast in part on a second uncertainty model. For instance, the vehicle102 may process at least the second parameter using the seconduncertainty model. Based at least in part on the processing, the vehicle102 may determine the second probability distribution associated withthe second parameter.

At operation 1412, the process 1400 may include determining estimatedlocations associated with the object based at least in part on at leastone of the first probability distribution or the second probabilitydistribution. For instance, the vehicle 102 may determine the estimatedlocations based at least in part on the first probability distributionand/or the second probability distribution. In some instances, if thefirst parameter and the second parameter are independent, such as thefirst parameter indicating a current location of the object and thesecond parameter indicating a speed of the object, then the vehicle 102may determine the estimated locations using both the first probabilitydistribution and the second probability distribution. In some instances,if the second parameter is determined using the first parameter, such asif the second parameter indicates an estimated location of the object ata future time that is determined using the first parameter indicatingthe speed of the object, then the vehicle 102 may determine theestimated locations using the second probability distribution.

Conclusion

While one or more examples of the techniques described herein have beendescribed, various alterations, additions, permutations and equivalentsthereof are included within the scope of the techniques describedherein.

In the description of examples, reference is made to the accompanyingdrawings that form a part hereof, which show by way of illustrationspecific examples of the claimed subject matter. It is to be understoodthat other examples can be used and that changes or alterations, such asstructural changes, can be made. Such examples, changes or alterationsare not necessarily departures from the scope with respect to theintended claimed subject matter. While the steps herein may be presentedin a certain order, in some cases the ordering may be changed so thatcertain inputs are provided at different times or in a different orderwithout changing the function of the systems and methods described. Thedisclosed procedures could also be executed in different orders.Additionally, various computations that are herein need not be performedin the order disclosed, and other examples using alternative orderingsof the computations could be readily implemented. In addition to beingreordered, the computations could also be decomposed intosub-computations with the same results.

Example Clauses

A: An autonomous vehicle comprising: one or more sensors; one or moreprocessors; and one or more computer-readable media storing instructionsthat, when executed by the one or more processors, cause the one or moreprocessors to perform operations comprising: obtaining sensor data fromthe one or more sensors; determining, based at least in part on a firstportion of the sensor data, an estimated location of the autonomousvehicle at a future time; determining, based at least in part on asystem of the autonomous vehicle and a second portion of the sensordata, an estimated location of an object at the future time;determining, based at least in part on an error model and the estimatedlocation of the object, a distribution of estimated locations associatedwith the object, the error model representing a probability of errorassociated with the system; determining a probability of collisionbetween the autonomous vehicle and the object based at least in part onthe estimated location of the autonomous vehicle and the distribution ofestimated locations associated with the object; and causing theautonomous vehicle to perform one or more actions based at least in parton the probability of collision.

B: The autonomous vehicle as recited in paragraph A, the operationsfurther comprising receiving, from one or more computing devices, theerror model, the error model being generated using at least sensor datagenerated by one or more vehicles.

C: The autonomous vehicle as recited in either of paragraphs A or B, theoperations further comprising: determining, based at least in part on anadditional error model and the estimated location of the vehicle, adistribution of estimated locations associated with the autonomousvehicle, and wherein determining the probability of collision betweenthe autonomous vehicle and the object comprises at least: determining anamount of overlap between the distribution of estimated locationsassociated with the autonomous vehicle and the distribution of estimatedlocations associated with the object; and determining the probability ofcollision based at least in part on the amount of overlap.

D: The autonomous vehicle as recited in any one of paragraphs A-C,wherein: the estimated location of the object at the future time isfurther determined based at least in part on an additional system of theautonomous vehicle; and the distribution of estimated locations isfurther determined based at least in part on an additional error model,the additional error model representing an error distribution associatedwith the additional system.

E: A method comprising: receiving sensor data from one or more sensorsof a vehicle; determining, based at least in part on a first portion ofthe sensor data, an estimated location associated with the vehicle at atime; determining, based at least in part on a system of the vehicle anda second portion of the sensor data, a parameter associated with anobject; determining, based at least in part on an error model and theparameter associated with the object, an estimated location associatedwith the object at the time, the error model representing a probabilityof error associated with the system; and causing the vehicle to performone or more actions based at least in part on the estimated locationassociated with the vehicle and the estimated location associated withthe object.

F: The method as recited in paragraph E, further comprising receiving,from one or more computing devices, the error model, the error modelbeing generated using at least sensor data generated by one or morevehicles.

G: The method as recited in either paragraphs E or F, wherein theparameter comprises at least one of: an object type associated with theobject; a location of the object within an environment; a speed of theobject; or a direction of travel of the object within the environment.

H: The method as recited in any one of paragraphs E-F, whereindetermining the estimated location associated with the vehicle at thetime comprises at least: determining, based at least in part on anadditional system of the vehicle and the first portion of the sensordata, a parameter associated with the vehicle; and determining, based atleast in part on an additional error model and the parameter associatedwith the vehicle, the estimated location associated with the vehicle atthe time, the additional error model representing a probability of errorassociated with the additional system.

I: The method as recited in any one of paragraphs E-H, furthercomprising: determining an additional estimated location associated withthe object at the time based at least in part on the parameter, andwherein determining the estimated location associated with the object atthe time comprises determining, based at least in part on the errormodel and the additional estimated location associated with the object,the estimated location associated with the object at the time.

J: The method as recited in any one of paragraphs E-I, whereindetermining the estimated location associated with the object at thetime comprises determining, based at least in part on the error modeland the parameter associated with the object, a distribution ofestimated locations associated with the object at the time.

K: The method as recited in any one of paragraphs E-J, whereindetermining the estimated location associated with the vehicle compriseat least: determining, based at least in part on an additional system ofthe vehicle and the first portion of the sensor data, a parameterassociated with the vehicle; and determining, based at least in part onan additional error model and the parameter associated with the vehicle,a distribution of estimated locations associated with the vehicle at thetime, the additional error model representing a probability of errorassociated with the additional system.

L: The method as recited in any one of paragraphs E-K, furthercomprising: determining an amount of overlap between the distribution ofestimated locations associated with the vehicle and the distribution ofestimated locations associated with the object; and determining aprobability of collision based at least in part on the amount ofoverlap, and wherein causing the vehicle to perform the one or moreactions is based at least in part on the probability of collision.

M: The method as recited in any one of paragraphs E-L, furthercomprising selecting the error model based at least in part on theparameter.

N: The method as recited in any one of paragraphs E-M, furthercomprising: determining, based at least in part an additional system ofthe vehicle and the second portion the sensor data, an additionalparameter associated with the object; and determining, based at least inpart on an additional error model and the additional parameterassociated with the object, an output associated with the object, theadditional error model representing a probability of error associatedwith the additional system, and wherein determining the parameterassociated with the object comprises determining, based at least in parton the system of the vehicle and the output, the parameter associatedwith the object.

O: The method as recited in any one of paragraphs E-N, wherein thesystem is a perception system and the additional system is a predictionsystem.

P: The method as recited in any one of paragraphs E-O, furthercomprising: determining, based at least in part on the first portion ofthe sensor data, an additional estimated location associated with thevehicle at an additional time that is later than the time; determining,based at least in part on the system of the vehicle and the secondportion of the sensor data, an additional parameter associated with theobject; determining, based at least in part on the error model and theadditional parameter associated with the object, an additional estimatedlocation associated with the object at the additional time; and causingthe vehicle to perform one or more actions based at least in part on theadditional estimated location associated with the vehicle and theadditional estimated location associated with the object.

Q: The method as recited in any one of paragraphs E-P, furthercomprising: determining a probability of collision based at least inpart on the estimated location associated with the vehicle and theestimated location associated with the object, and wherein causing thevehicle to perform the one or more actions comprises causing, based atleast in part on the probability of collision, the vehicle to at leastone of change a velocity or change a route.

R: One or more non-transitory computer-readable media storinginstructions that, when executed by one or more processors, cause one ormore computing devices to perform operations comprising: receivingsensor data generated by a sensor associated with a vehicle;determining, based at least in part on a portion of the sensor data, anestimated location associated with an object at the time; determining,based at least in part on the estimated location, an error model from aplurality of error models; determining, based at least in part on theerror model and the estimated location, a distribution of estimatedlocations associated with the object; and determining one or moreactions for navigating the vehicle based at least in part ondistribution of estimated locations.

S: The one or more non-transitory computer-readable media as recited inparagraph R, the operation further comprising: determining, based atleast in part on the portion of the sensor data, a parameter associatedwith the vehicle; determining the estimated location based at least inpart on the parameter, and wherein the error model is associated withthe parameter.

T: The one or more non-transitory computer-readable media as recited ineither of paragraphs R or S, wherein determining the error model isfurther based at least in part on one or more of: a classification ofthe object, a speed of the object, a size of the object, a number ofobjects in the environment, a weather condition in the environment, atime of day, or a time of year.

U: An autonomous vehicle comprising: one or more sensors; one or moreprocessors; and one or more computer-readable media storing instructionsthat, when executed by the one or more processors, cause the one or moreprocessors to perform operations comprising: obtaining sensor datagenerated by the one or more sensors; determining, based at least inpart on a first portion of the sensor data, an estimated location of theautonomous vehicle; determining, based at least in part a second portionof the sensor data, an estimated location of an object; determining anuncertainty model associated with the estimated location of the object;determining, based at least in part on the uncertainty model and theestimated location of the object, a distribution of estimated locationsassociated with the object; determining a probability of collisionbetween the autonomous vehicle and the object based at least in part onthe estimated location associated with the vehicle and probability ofestimated locations associated with the object; and causing theautonomous vehicle to perform one or more actions based at least in parton the probability of collision.

V: The autonomous vehicle as recited in paragraph U, the operationsfurther comprising: determining an additional uncertainty modelassociated with an additional system determining the estimated locationof the autonomous vehicle; and determining, based at least in part onthe additional uncertainty model and the estimated location of theautonomous vehicle, a probability of estimated locations associated withthe autonomous vehicle, and wherein determining the probability ofcollision between the autonomous vehicle and the object comprises atleast: determining an amount of overlap between the probability ofestimated locations associated with the autonomous vehicle and theprobability of estimated locations associated with the object; anddetermining the probability of collision based at least in part on theamount of overlap.

W: The autonomous vehicle as recited in either of paragraphs U or V,wherein: the estimated location of the object is further determinedbased at least in part on an additional system of the autonomousvehicle; the operations further comprise determining an additionaluncertainty model associated with the additional system determining theestimated location of the object; and the probability of estimatedlocations is further determined based at least in part on the additionaluncertainty model.

X: A method comprising: receiving sensor data from one or more sensorsof a vehicle; determining, based at least in part on a first portion ofthe sensor data, an estimated location associated with the vehicle;determining, based at least in part on a system of the vehicle and asecond portion of the sensor data, a parameter associated with anobject; determining an uncertainty model associated with the systemdetermining the parameter associated with the object; determining, basedat least in part on the parameter associated with the object and theuncertainty model, an estimated location associated with the object; andcausing the vehicle to perform one or more actions based at least inpart on the estimated location associated with the vehicle and theestimated location associated with the object.

Y: The method as recited in paragraph X, further comprising receivingthe uncertainty model from one or more computing devices, theuncertainty model being generated based at least in part on sensor datagenerated by one or more vehicles.

Z: The method as recited in either of paragraphs X or Y, whereindetermining the parameter associated with the object comprisesdetermining, based at least in part on the system and the second portionof the sensor data, at least one of: an object type associated with theobject; a location of the object within an environment; a speed of theobject; or a direction of travel of the object within the environment.

AA: The method as recited in any one of paragraphs X-Z, whereindetermining the estimated location associated with the vehicle comprisesat least: determining, based at least in part on an additional system ofthe vehicle and the first portion of the sensor data, a parameterassociated with the vehicle; determining an additional uncertainty modelassociated with the additional system determining the parameterassociated with the vehicle; and determining, based at least in part onthe parameter associated with the vehicle and the additional uncertaintymodel, the estimated location associated with the vehicle.

AB: The method as recited in any one of paragraphs X-AA, furthercomprising: determining an additional estimated location associated withthe object based at least in part on the parameter, and whereindetermining the estimated location associated with the object comprisesdetermining, based at least in part on the additional estimated locationassociated with the object and the uncertainty model, the estimatedlocation associated with the object.

AC: The method as recited in any one of paragraphs X-AB, whereindetermining the estimated location associated with the object comprisesdetermining, based at least in part on the parameter associated with theobject and the uncertainty model, a distribution of estimated locationsassociated with the object.

AD: The method as recited in any one of paragraphs X-AC, whereindetermining the estimated location associated with the vehicle compriseat least: determining, based at least in part on an additional system ofthe vehicle and the first portion of the sensor data, a parameterassociated with the vehicle; determining an additional uncertainty modelassociated with the additional system determining the parameterassociated with the vehicle; and determining, based at least in part onthe parameter associated with the vehicle and the additional uncertaintymodel, a distribution of estimated locations associated with thevehicle.

AE: The method as recited in any one of paragraphs X-AD, furthercomprising: determining an amount of overlap between the distribution ofestimated locations associated with the vehicle and the distribution ofestimated locations associated with the object; and determining aprobability of collision based at least in part on the amount ofoverlap, and wherein causing the vehicle to perform the one or moreactions is based at least in part on the probability of collision.

AF: The method as recited in any one of paragraphs X-AE, furthercomprising: determining, based at least in part on an additional systemof the vehicle and a third portion the sensor data, an additionalparameter associated with the object; and determining an additionaluncertainty model associated with the additional system determining theadditional parameter associated with the object, and wherein determiningthe estimated location associated with the object is further based atleast in part on the additional parameter and the additional uncertaintymodel.

AG: The method as recited in any one of paragraphs X-AF, furthercomprising: determining, based at least in part on an additional systemof the vehicle and the second portion the sensor data, an additionalparameter associated with the object; determining an additionaluncertainty model associated with the additional system determining theadditional parameter associated with the object; and determining, basedat least in part on the additional parameter associated with the objectand the additional uncertainty model, an output associated with theobject, and wherein determining the parameter associated with the objectcomprises determining, based at least in part on the system of thevehicle and the output, the parameter associated with the object.

AH: The method as recited in any one of paragraphs X-AG, furthercomprising: determining, based at least in part on the system of thevehicle and a third portion of the sensor data, a parameter associatedwith an additional object; determining an additional uncertainty modelassociated with the system determining the parameter associated with theadditional object; determining, based at least in part the parameterassociated with the additional object and the additional uncertaintymodel, an estimated location associated with the additional object; andwherein causing the vehicle to perform the one or more actions isfurther based at least in part on the estimated location associated withthe additional object.

AI: The method as recited in any one of paragraphs X-AH, furthercomprising: determining a probability of collision based at least inpart on the estimated location associated with the vehicle and theestimated location associated with the object, and wherein causing thevehicle to perform the one or more actions comprises causing, based atleast in part on the probability of collision, the vehicle to at leastone of change a velocity or change a route.

AJ: One or more non-transitory computer-readable media storinginstructions that, when executed by one or more processors, cause one ormore computing devices to perform operations comprising: receivingsensor data generated by a sensor associated with a vehicle;determining, based at least in part on a portion of the sensor data, anestimated location associated with an object; determining, based atleast in part on the estimated location, an uncertainty model from aplurality of uncertainty models; determining, based at least in part onthe uncertainty model and the estimated location, a distribution ofestimated locations associated with the object; and determining one ormore actions for navigating the vehicle based at least in part ondistribution of estimated locations.

AK: The one or more non-transitory computer-readable media as recited inparagraph AJ, the operation further comprising: determining, based atleast in part on the portion of the sensor data, a parameter associatedwith the vehicle; determining the estimated location based at least inpart on the parameter, and wherein the uncertainty model is associatedwith the parameter.

AL: The one or more non-transitory computer-readable media as recited ineither of paragraphs AJ or AK, the operation further comprising:determining, based at least in part on an additional portion of thesensor data, an estimated location associated with the vehicle;determining, based at least in part on the estimated location, anadditional uncertainty model from the plurality of uncertainty models;and determining, based at least in part on the additional uncertaintymodel and the estimated location associated with the vehicle, adistribution of estimated locations associated with the vehicle, andwherein determining the one or more actions is further based at least inpart on the distribution of estimated locations associated with thevehicle.

AM: The one or more non-transitory computer-readable media as recited inany one of paragraphs AJ-AL, the operation further comprising:determining a probability of collision based at least in part on thedistribution of estimated locations associated with the vehicle and thedistribution of estimated locations associated with the object, andwherein determining the one or more actions is based at least in part onthe probability of collision.

AN: The one or more non-transitory computer-readable media as recited inany one of paragraphs AJ-AM, wherein determining the uncertainty modelis further based at least in part on one or more of: a classification ofthe object, a speed of the object, a size of the object, a number ofobjects in the environment, a weather condition in the environment, atime of day, or a time of year.

What is claimed is:
 1. An autonomous vehicle comprising: one or moresensors; one or more processors; and one or more computer-readable mediastoring instructions that, when executed by the one or more processors,cause the one or more processors to perform operations comprising:obtaining sensor data from the one or more sensors; determining, basedat least in part on a first portion of the sensor data, an estimatedlocation of the autonomous vehicle at a future time; determining, basedat least in part on a system of the autonomous vehicle and a secondportion of the sensor data, an estimated location of an object at thefuture time; determining, based at least in part on an error model andthe estimated location of the object, a distribution of estimatedlocations associated with the object, the error model representing aprobability of error associated with the system; determining aprobability of collision between the autonomous vehicle and the objectbased at least in part on the estimated location of the autonomousvehicle and the distribution of estimated locations associated with theobject; and causing the autonomous vehicle to perform one or moreactions based at least in part on the probability of collision.
 2. Theautonomous vehicle as recited in claim 1, the operations furthercomprising receiving, from one or more computing devices, the errormodel, the error model being generated using at least sensor datagenerated by one or more vehicles.
 3. The autonomous vehicle as recitedin claim 1, the operations further comprising: determining, based atleast in part on an additional error model and the estimated location ofthe vehicle, a distribution of estimated locations associated with theautonomous vehicle, and wherein determining the probability of collisionbetween the autonomous vehicle and the object comprises at least:determining an amount of overlap between the distribution of estimatedlocations associated with the autonomous vehicle and the distribution ofestimated locations associated with the object; and determining theprobability of collision based at least in part on the amount ofoverlap.
 4. The autonomous vehicle as recited in claim 1, wherein: theestimated location of the object at the future time is furtherdetermined based at least in part on an additional system of theautonomous vehicle; and the distribution of estimated locations isfurther determined based at least in part on an additional error model,the additional error model representing an error distribution associatedwith the additional system.
 5. A method comprising: receiving sensordata from one or more sensors of a vehicle; determining, based at leastin part on a first portion of the sensor data, an estimated locationassociated with the vehicle at a time; determining, based at least inpart on a system of the vehicle and a second portion of the sensor data,a parameter associated with an object; determining, based at least inpart on an error model and the parameter associated with the object, anestimated location associated with the object at the time, the errormodel representing a probability of error associated with the system;and causing the vehicle to perform one or more actions based at least inpart on the estimated location associated with the vehicle and theestimated location associated with the object.
 6. The method as recitedin claim 5, further comprising receiving, from one or more computingdevices, the error model, the error model being generated using at leastsensor data generated by one or more vehicles.
 7. The method as recitedin claim 5, wherein the parameter comprises at least one of: an objecttype associated with the object; a location of the object within anenvironment; a speed of the object; or a direction of travel of theobject within the environment.
 8. The method as recited in claim 5,wherein determining the estimated location associated with the vehicleat the time comprises at least: determining, based at least in part onan additional system of the vehicle and the first portion of the sensordata, a parameter associated with the vehicle; and determining, based atleast in part on an additional error model and the parameter associatedwith the vehicle, the estimated location associated with the vehicle atthe time, the additional error model representing a probability of errorassociated with the additional system.
 9. The method as recited in claim5, further comprising: determining an additional estimated locationassociated with the object at the time based at least in part on theparameter, and wherein determining the estimated location associatedwith the object at the time comprises determining, based at least inpart on the error model and the additional estimated location associatedwith the object, the estimated location associated with the object atthe time.
 10. The method as recited in claim 5, wherein determining theestimated location associated with the object at the time comprisesdetermining, based at least in part on the error model and the parameterassociated with the object, a distribution of estimated locationsassociated with the object at the time.
 11. The method as recited inclaim 10, wherein determining the estimated location associated with thevehicle comprise at least: determining, based at least in part on anadditional system of the vehicle and the first portion of the sensordata, a parameter associated with the vehicle; and determining, based atleast in part on an additional error model and the parameter associatedwith the vehicle, a distribution of estimated locations associated withthe vehicle at the time, the additional error model representing aprobability of error associated with the additional system.
 12. Themethod as recited in claim 11, further comprising: determining an amountof overlap between the distribution of estimated locations associatedwith the vehicle and the distribution of estimated locations associatedwith the object; and determining a probability of collision based atleast in part on the amount of overlap, and wherein causing the vehicleto perform the one or more actions is based at least in part on theprobability of collision.
 13. The method as recited in claim 5, furthercomprising selecting the error model based at least in part on theparameter.
 14. The method as recited in claim 5, further comprising:determining, based at least in part an additional system of the vehicleand the second portion the sensor data, an additional parameterassociated with the object; and determining, based at least in part onan additional error model and the additional parameter associated withthe object, an output associated with the object, the additional errormodel representing a probability of error associated with the additionalsystem, and wherein determining the parameter associated with the objectcomprises determining, based at least in part on the system of thevehicle and the output, the parameter associated with the object. 15.The method as recited in claim 14, wherein the system is a perceptionsystem and the additional system is a prediction system.
 16. The methodas recited in claim 5, further comprising: determining, based at leastin part on the first portion of the sensor data, an additional estimatedlocation associated with the vehicle at an additional time that is laterthan the time; determining, based at least in part on the system of thevehicle and the second portion of the sensor data, an additionalparameter associated with the object; determining, based at least inpart on the error model and the additional parameter associated with theobject, an additional estimated location associated with the object atthe additional time; and causing the vehicle to perform one or moreactions based at least in part on the additional estimated locationassociated with the vehicle and the additional estimated locationassociated with the object.
 17. The method as recited in claim 5,further comprising: determining a probability of collision based atleast in part on the estimated location associated with the vehicle andthe estimated location associated with the object, and wherein causingthe vehicle to perform the one or more actions comprises causing, basedat least in part on the probability of collision, the vehicle to atleast one of change a velocity or change a route.
 18. One or morenon-transitory computer-readable media storing instructions that, whenexecuted by one or more processors, cause one or more computing devicesto perform operations comprising: receiving sensor data generated by asensor associated with a vehicle; determining, based at least in part ona portion of the sensor data, an estimated location associated with anobject at the time; determining, based at least in part on the estimatedlocation, an error model from a plurality of error models; determining,based at least in part on the error model and the estimated location, adistribution of estimated locations associated with the object; anddetermining one or more actions for navigating the vehicle based atleast in part on distribution of estimated locations.
 19. The one ormore non-transitory computer-readable media as recited in claim 18, theoperation further comprising: determining, based at least in part on theportion of the sensor data, a parameter associated with the vehicle;determining the estimated location based at least in part on theparameter, and wherein the error model is associated with the parameter.20. The one or more non-transitory computer-readable media as recited inclaim 18, wherein determining the error model is further based at leastin part on one or more of: a classification of the object, a speed ofthe object, a size of the object, a number of objects in theenvironment, a weather condition in the environment, a time of day, or atime of year.